from copy import copy, deepcopy
from clases import Patron, Cluster,Modulo
from random import random, choice
import manejoClusters as mc
import os
import Parser
import eval as ev
#patterns = (2, 10, 18, 100, 33, 91)
#clusters = []
mods = range(0,35) #Cada modulo es un casillero noms. Usar por ahora, son 7 por dia.


def graspear(carreras, patterns, modulos, clusters):
#Supongamos que recibe todo listo. Lo dejo escrito porsiaca
    Z=1000000
    X=[]
    for i in xrange(Z): 
        generar_factible(carreras, clusters, patterns, modulos)
    #print "Solucion generada, evaluando:" 
    #if evaluar(carreras)<Z:
    #    X=deepcopy(clusters)    
    #    print "Fue mejor!"
    #    return X
    #else:
    #    print "fue peor..."
    #    return clusters

#Generar los modulos para poder chantarles los ramos
def generarModulos():
    modulos=[]
    for i in xrange(35):
        mod=Modulo()
        modulos.append(mod)
    return modulos

#g es la funcion greedy evaluadora. Le chantamos a cada ramo datos al azar y luego medimos factibilidad.
def generar_factible(carreras, clusters, patterns, modulos): 
    #Asignar todo 	
    for c in clusters:
        for r in xrange(len(c.ramos)):
            c.mod_pat.append((choice(modulos),choice(patterns)))
	    #print c.patron.capacidad
	    #print c.modulo
	
	#Validar
#	feasible = 0
#	for i in xrange(0,1000):
#	    if eval_sol(clusters):
#	        feasible = feasible+1
#	print feasible
    
